﻿/**
 * @file font.c
 * @brief this is a brief description
 * @details this is the detail description.
 * @author fulong 
 * @data 7/29/2014
 * @version 1.0
 * @par Copyright (c):
 * @par First build
 *     version: fulong 
 *     data: 7/29/2014
 */
#include "font.h"
#include "../dev/uart.h"
/*!< 字模表，宋体字库，纵向取模，数据排列是从左到右从上到下,前面两个字节是字的unicode码,高字节在前 */
#ifdef __R8C
#pragma ROM GB_16
#endif
const struct typFNT_GB16 GB_16[ ] =
{
    //手
    0x624B, 0x00, 0x04, 0x24, 0x24, 0x24, 0x24, 0x24, 0xFC,
    0x22, 0x22, 0x22, 0x33, 0x22, 0x00, 0x00, 0x00,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x42, 0x82, 0x7F,
    0x02, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x00,
    //动
    0x52A8, 0x20, 0x24, 0x24, 0xE4, 0x26, 0x34, 0x20, 0x10,
    0x10, 0xFF, 0x10, 0x10, 0x10, 0xF8, 0x10, 0x00,
    0x08, 0x1C, 0x0B, 0x08, 0x08, 0x8A, 0x4C, 0x30,
    0x0C, 0x03, 0x40, 0x80, 0x40, 0x3F, 0x00, 0x00,
    //状
    0x5F00, 0x00, 0x08, 0x30, 0x00, 0xFF, 0x20, 0x20, 0x20,
    0x20, 0xFF, 0x20, 0x22, 0x24, 0x30, 0x20, 0x00,
    0x08, 0x0C, 0x02, 0x01, 0xFF, 0x40, 0x20, 0x1C,
    0x03, 0x00, 0x03, 0x0C, 0x30, 0x60, 0x20, 0x00,
    //态
    0x5173, 0x04, 0x04, 0x84, 0x84, 0x44, 0x24, 0x54, 0x8F,
    0x14, 0x24, 0x44, 0x44, 0x84, 0x86, 0x84, 0x00,
    0x01, 0x21, 0x1C, 0x00, 0x3C, 0x40, 0x42, 0x4C,
    0x40, 0x40, 0x70, 0x04, 0x08, 0x31, 0x00, 0x00,
    //自
    0x81EA, 0x00, 0x00, 0x00, 0xF8, 0x48, 0x4C, 0x4A, 0x49,
    0x48, 0x48, 0x48, 0xFC, 0x08, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0xFF, 0x44, 0x44, 0x44, 0x44,
    0x44, 0x44, 0x44, 0xFF, 0x00, 0x00, 0x00, 0x00,
    //参
    0x53C2, 0x20, 0x20, 0x20, 0x28, 0xA8, 0x6C, 0x3B, 0x28,
    0xA8, 0x6A, 0xAC, 0x28, 0x20, 0x30, 0x20, 0x00,
    0x04, 0x84, 0x82, 0x81, 0x4A, 0x4A, 0x49, 0x25,
    0x24, 0x12, 0x10, 0x09, 0x02, 0x06, 0x02, 0x00,

    //数
    0x6570, 0x10, 0x92, 0x54, 0x30, 0xFF, 0x50, 0x94, 0x32,
    0xD8, 0x17, 0x10, 0x10, 0xF0, 0x18, 0x10, 0x00,
    0x02, 0x82, 0x4E, 0x33, 0x22, 0x52, 0x8E, 0x40,
    0x23, 0x14, 0x08, 0x16, 0x61, 0xC0, 0x40, 0x00,
    //设
    0x8BBE, 0x40, 0x40, 0x42, 0xCC, 0x00, 0x40, 0xA0, 0x9F,
    0x81, 0x81, 0x81, 0x9F, 0xA0, 0x20, 0x20, 0x00,
    0x00, 0x00, 0x00, 0x7F, 0xA0, 0x90, 0x40, 0x43,
    0x2C, 0x10, 0x28, 0x26, 0x41, 0xC0, 0x40, 0x00,
    //置
    0x7F6E, 0x00, 0x10, 0x17, 0xD5, 0x55, 0x57, 0x55, 0x7D,
    0x55, 0x57, 0x55, 0xD5, 0x17, 0x10, 0x00, 0x00,
    0x40, 0x40, 0x40, 0x7F, 0x55, 0x55, 0x55, 0x55,
    0x55, 0x55, 0x55, 0x7F, 0x40, 0x60, 0x40, 0x00,
    //广
    0x5E7F, 0x00, 0x00, 0xFC, 0x04, 0x04, 0x04, 0x04, 0x05,
    0x06, 0x04, 0x04, 0x04, 0x04, 0x06, 0x04, 0x00,
    0x40, 0x30, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    //州
    0x5DDE, 0x80, 0x70, 0x00, 0xFF, 0x00, 0x10, 0x60, 0x00,
    0xFE, 0x00, 0x10, 0x60, 0x00, 0xFF, 0x00, 0x00,
    0x00, 0x40, 0x30, 0x0F, 0x00, 0x00, 0x00, 0x00,
    0x3F, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
    //星
    0x661F, 0x00, 0x00, 0xBE, 0x2A, 0x2A, 0x2A, 0x2A, 0xEA,
    0x2A, 0x2A, 0x2A, 0x2A, 0xBF, 0x02, 0x00, 0x00,
    0x48, 0x44, 0x4B, 0x49, 0x49, 0x49, 0x49, 0x7F,
    0x49, 0x49, 0x49, 0x4D, 0x49, 0x61, 0x40, 0x00,
    //特
    0x7279, 0x20, 0x1C, 0x10, 0xFF, 0x90, 0x50, 0x48, 0x48,
    0x48, 0x7F, 0x48, 0xC8, 0x4C, 0x68, 0x40, 0x00,
    0x02, 0x02, 0x01, 0xFF, 0x00, 0x02, 0x02, 0x06,
    0x1A, 0x42, 0x82, 0x7F, 0x02, 0x03, 0x02, 0x00,
    //一
    0x4E00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
    0x80, 0x80, 0x80, 0x80, 0x80, 0xC0, 0x80, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    //次
    0x6B21, 0x00, 0x02, 0x04, 0x8C, 0x40, 0x00, 0x20, 0x18,
    0x17, 0xD0, 0x10, 0x50, 0x38, 0x10, 0x00, 0x00,
    0x02, 0x02, 0xFF, 0x00, 0x80, 0x40, 0x20, 0x10,
    0x0C, 0x03, 0x0C, 0x10, 0x60, 0xC0, 0x40, 0x00,
    //作
    0x4F5C, 0x80, 0x40, 0x20, 0xF8, 0x87, 0x40, 0x30, 0x0F,
    0xF8, 0x88, 0x88, 0xC8, 0x88, 0x0C, 0x08, 0x00,
    0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00,
    0xFF, 0x08, 0x08, 0x08, 0x0C, 0x08, 0x00, 0x00,
    //单
    0x5355, 0x00, 0x00, 0xF8, 0x49, 0x4A, 0x4C, 0x48, 0xF8,
    0x48, 0x4C, 0x4A, 0x49, 0xFC, 0x08, 0x00, 0x00,
    0x10, 0x10, 0x17, 0x12, 0x12, 0x12, 0x12, 0xFF,
    0x12, 0x12, 0x12, 0x12, 0x13, 0x18, 0x10, 0x00,
    //油
    0x6CB9, 0x10, 0x22, 0x64, 0x0C, 0x80, 0xF0, 0x10, 0x10,
    0x10, 0xFF, 0x10, 0x10, 0x10, 0xF8, 0x10, 0x00,
    0x04, 0x04, 0xFE, 0x01, 0x00, 0xFF, 0x42, 0x42,
    0x42, 0x7F, 0x42, 0x42, 0x42, 0xFF, 0x00, 0x00,
    //泵
    0x6CF5, 0x42, 0x42, 0x22, 0x12, 0xFA, 0x96, 0x92, 0x92,
    0x92, 0x92, 0x92, 0xFA, 0x12, 0x03, 0x02, 0x00,
    0x00, 0x44, 0x44, 0x24, 0x15, 0x0C, 0x80, 0xFF,
    0x04, 0x08, 0x14, 0x22, 0x23, 0x60, 0x20, 0x00,
    //前
    0x524D, 0x08, 0x08, 0xE8, 0x29, 0x2A, 0x2E, 0xE8, 0x08,
    0x08, 0xCC, 0x0A, 0x0B, 0xE8, 0x0C, 0x08, 0x00,
    0x00, 0x00, 0xFF, 0x09, 0x49, 0x89, 0x7F, 0x00,
    0x00, 0x0F, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x00,
    //进
    0x8FDB, 0x40, 0x42, 0xCC, 0x00, 0x08, 0x08, 0xFF, 0x08,
    0x08, 0x08, 0xFF, 0x08, 0x8C, 0x08, 0x00, 0x00,
    0x40, 0x20, 0x1F, 0x20, 0x41, 0x51, 0x4F, 0x41,
    0x41, 0x41, 0x7F, 0x41, 0x41, 0x61, 0x20, 0x00,
    //挡
    0x6321, 0x10, 0x10, 0x10, 0xFF, 0x90, 0x50, 0x44, 0x58,
    0x40, 0x7F, 0x40, 0x50, 0x48, 0xEC, 0x40, 0x00,
    0x02, 0x42, 0x81, 0x7F, 0x00, 0x40, 0x44, 0x44,
    0x44, 0x44, 0x44, 0x44, 0x44, 0xFF, 0x00, 0x00,
    //板
    0x677F, 0x10, 0x10, 0xD0, 0xFF, 0x90, 0x10, 0x00, 0xFC,
    0x24, 0xA4, 0x24, 0x22, 0xA3, 0x62, 0x00, 0x00,
    0x04, 0x03, 0x00, 0xFF, 0x40, 0x21, 0x18, 0x47,
    0x20, 0x13, 0x0C, 0x16, 0x21, 0x60, 0x20, 0x00, 
    //密
    0x5BC6, 0x10, 0x4C, 0x24, 0x04, 0xF4, 0x84, 0x4D, 0x56,
    0x24, 0x24, 0x14, 0x84, 0x24, 0x54, 0x0C, 0x00,
    0x00, 0x01, 0xFD, 0x41, 0x40, 0x41, 0x41, 0x7F,
    0x41, 0x41, 0x41, 0x41, 0xFC, 0x00, 0x00, 0x00,
    //码
    0x7801, 0x02, 0x82, 0xF2, 0x4E, 0x43, 0xE2, 0x42, 0xFA,
    0x02, 0x02, 0x02, 0xFF, 0x02, 0x80, 0x00, 0x00,
    0x01, 0x00, 0x7F, 0x20, 0x20, 0x7F, 0x08, 0x09,
    0x09, 0x09, 0x0D, 0x49, 0x81, 0x7F, 0x01, 0x00,
    //输
    0x8F93, 0x88, 0x68, 0x1F, 0xC8, 0x0C, 0x28, 0x90, 0xA8,
    0xA6, 0xA1, 0x26, 0x28, 0x10, 0xB0, 0x10, 0x00,
    0x09, 0x09, 0x05, 0xFF, 0x05, 0x00, 0xFF, 0x0A,
    0x8A, 0xFF, 0x00, 0x1F, 0x80, 0xFF, 0x00, 0x00,
    //入
    0x5165, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE2, 0x1C,
    0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x80, 0x40, 0x20, 0x10, 0x0C, 0x03, 0x00, 0x00,
    0x00, 0x03, 0x0C, 0x30, 0x40, 0xC0, 0x40, 0x00

};
#ifdef __R8C
#pragma ROM GB_8
#endif
const struct typFNT_GB8 GB_8[ ] =
{
    ' ', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // - -
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

//  '!', 0x00, 0x00, 0x38, 0xFC, 0xFC, 0x38, 0x00, 0x00,  // -!-
//  0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00, 0x00,
//
//  '"', 0x00, 0x0E, 0x1E, 0x00, 0x00, 0x1E, 0x0E, 0x00,  // -"-
//  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//
//  '#', 0x20, 0xF8, 0xF8, 0x20, 0xF8, 0xF8, 0x20, 0x00,  // -#-
//  0x02, 0x0F, 0x0F, 0x02, 0x0F, 0x0F, 0x02, 0x00,
//
//  '$', 0x38, 0x7C, 0x44, 0x47, 0x47, 0xCC, 0x98, 0x00,  // -$-
//  0x03, 0x06, 0x04, 0x1C, 0x1C, 0x07, 0x03, 0x00,
//
//  '%', 0x30, 0x30, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00,  // -%-
//  0x0C, 0x06, 0x03, 0x01, 0x00, 0x0C, 0x0C, 0x00,
//
//  '&', 0x80, 0xD8, 0x7C, 0xE4, 0xBC, 0xD8, 0x40, 0x00,  // -&-
//  0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08, 0x00,
//
//  '\'', 0x00, 0x10, 0x1E, 0x0E, 0x00, 0x00, 0x00, 0x00,  // -'-
//  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//
//  '(', 0x00, 0x00, 0xF0, 0xF8, 0x0C, 0x04, 0x00, 0x00,  // -(-
//  0x00, 0x00, 0x03, 0x07, 0x0C, 0x08, 0x00, 0x00,
//
//  ')', 0x00, 0x00, 0x04, 0x0C, 0xF8, 0xF0, 0x00, 0x00,  // -)-
//  0x00, 0x00, 0x08, 0x0C, 0x07, 0x03, 0x00, 0x00,
//
//  '*', 0x80, 0xA0, 0xE0, 0xC0, 0xC0, 0xE0, 0xA0, 0x80,  // -*-
//  0x00, 0x02, 0x03, 0x01, 0x01, 0x03, 0x02, 0x00,
//
//  '+', 0x00, 0x80, 0x80, 0xE0, 0xE0, 0x80, 0x80, 0x00,  // -+-
//  0x00, 0x00, 0x00, 0x03, 0x03, 0x00, 0x00, 0x00,
//
//  ',', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // -,-
//  0x00, 0x00, 0x10, 0x1E, 0x0E, 0x00, 0x00, 0x00,
//
    '-', 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00,  // ---
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    '.', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // -.-
    0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00,
//
//  '/', 0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x00,  // -/-
//  0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,

    '0', 0xF8, 0xFC, 0x04, 0xC4, 0x24, 0xFC, 0xF8, 0x00,  // -0-
    0x07, 0x0F, 0x09, 0x08, 0x08, 0x0F, 0x07, 0x00,

    '1', 0x00, 0x10, 0x18, 0xFC, 0xFC, 0x00, 0x00, 0x00,  // -1-
    0x00, 0x08, 0x08, 0x0F, 0x0F, 0x08, 0x08, 0x00,

    '2', 0x08, 0x0C, 0x84, 0xC4, 0x64, 0x3C, 0x18, 0x00,  // -2-
    0x0E, 0x0F, 0x09, 0x08, 0x08, 0x0C, 0x0C, 0x00,

    '3', 0x08, 0x0C, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00,  // -3-
    0x04, 0x0C, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,

    '4', 0xC0, 0xE0, 0xB0, 0x98, 0xFC, 0xFC, 0x80, 0x00,  // -4-
    0x00, 0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00,

    '5', 0x7C, 0x7C, 0x44, 0x44, 0xC4, 0xC4, 0x84, 0x00,  // -5-
    0x04, 0x0C, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,

    '6', 0xF0, 0xF8, 0x4C, 0x44, 0x44, 0xC0, 0x80, 0x00,  // -6-
    0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,

    '7', 0x0C, 0x0C, 0x04, 0x84, 0xC4, 0x7C, 0x3C, 0x00,  // -7-
    0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00, 0x00,

    '8', 0xB8, 0xFC, 0x44, 0x44, 0x44, 0xFC, 0xB8, 0x00,  // -8-
    0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,

    '9', 0x38, 0x7C, 0x44, 0x44, 0x44, 0xFC, 0xF8, 0x00,  // -9-
    0x00, 0x08, 0x08, 0x08, 0x0C, 0x07, 0x03, 0x00,

    ':', 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,  // -:-
    0x00, 0x00, 0x00, 0x06, 0x06, 0x00, 0x00, 0x00,
//
//  ';', 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x00, 0x00,  // -;-
//  0x00, 0x00, 0x08, 0x0E, 0x06, 0x00, 0x00, 0x00,
//
//  '<', 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18, 0x08, 0x00,  // -<-
//  0x00, 0x00, 0x01, 0x03, 0x06, 0x0C, 0x08, 0x00,
//
//  '=', 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,  // -=-
//  0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
//
    '>', 0x00, 0x08, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00,  // ->-
    0x00, 0x08, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00,
//
//  '?', 0x18, 0x1C, 0x04, 0xC4, 0xE4, 0x3C, 0x18, 0x00,  // -?-
//  0x00, 0x00, 0x00, 0x0D, 0x0D, 0x00, 0x00, 0x00,
//
//  '@', 0xF0, 0xF8, 0x08, 0xC8, 0xC8, 0xF8, 0xF0, 0x00,  // -@-
//  0x07, 0x0F, 0x08, 0x0B, 0x0B, 0x0B, 0x01, 0x00,
//
//  'A', 0xE0, 0xF0, 0x98, 0x8C, 0x98, 0xF0, 0xE0, 0x00,  // -A-
//  0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'B', 0x04, 0xFC, 0xFC, 0x44, 0x44, 0xFC, 0xB8, 0x00,  // -B-
//  0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0F, 0x07, 0x00,
//
    'C', 0xF0, 0xF8, 0x0C, 0x04, 0x04, 0x0C, 0x18, 0x00,  // -C-
    0x03, 0x07, 0x0C, 0x08, 0x08, 0x0C, 0x06, 0x00,

//  'D', 0x04, 0xFC, 0xFC, 0x04, 0x0C, 0xF8, 0xF0, 0x00,  // -D-
//  0x08, 0x0F, 0x0F, 0x08, 0x0C, 0x07, 0x03, 0x00,
//
//  'E', 0x04, 0xFC, 0xFC, 0x44, 0xE4, 0x0C, 0x1C, 0x00,  // -E-
//  0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0C, 0x0E, 0x00,
//
//  'F', 0x04, 0xFC, 0xFC, 0x44, 0xE4, 0x0C, 0x1C, 0x00,  // -F-
//  0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00,
//
//  'G', 0xF0, 0xF8, 0x0C, 0x84, 0x84, 0x8C, 0x98, 0x00,  // -G-
//  0x03, 0x07, 0x0C, 0x08, 0x08, 0x07, 0x0F, 0x00,
//
//  'H', 0xFC, 0xFC, 0x40, 0x40, 0x40, 0xFC, 0xFC, 0x00,  // -H-
//  0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'I', 0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x00,  // -I-
//  0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00,
//
//  'J', 0x00, 0x00, 0x00, 0x04, 0xFC, 0xFC, 0x04, 0x00,  // -J-
//  0x07, 0x0F, 0x08, 0x08, 0x0F, 0x07, 0x00, 0x00,
//
//  'K', 0x04, 0xFC, 0xFC, 0xC0, 0xF0, 0x3C, 0x0C, 0x00,  // -K-
//  0x08, 0x0F, 0x0F, 0x00, 0x01, 0x0F, 0x0E, 0x00,
//
//  'L', 0x04, 0xFC, 0xFC, 0x04, 0x00, 0x00, 0x00, 0x00,  // -L-
//  0x08, 0x0F, 0x0F, 0x08, 0x08, 0x0C, 0x0E, 0x00,
//
//  'M', 0xFC, 0xFC, 0x38, 0x70, 0x38, 0xFC, 0xFC, 0x00,  // -M-
//  0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'N', 0xFC, 0xFC, 0x38, 0x70, 0xE0, 0xFC, 0xFC, 0x00,  // -N-
//  0x0F, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'O', 0xF0, 0xF8, 0x0C, 0x04, 0x0C, 0xF8, 0xF0, 0x00,  // -O-
//  0x03, 0x07, 0x0C, 0x08, 0x0C, 0x07, 0x03, 0x00,
//
    'P', 0x04, 0xFC, 0xFC, 0x44, 0x44, 0x7C, 0x38, 0x00,  // -P-
    0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00,

//  'Q', 0xF8, 0xFC, 0x04, 0x04, 0x04, 0xFC, 0xF8, 0x00,  // -Q-
//  0x07, 0x0F, 0x08, 0x0E, 0x3C, 0x3F, 0x27, 0x00,
//
//  'R', 0x04, 0xFC, 0xFC, 0x44, 0xC4, 0xFC, 0x38, 0x00,  // -R-
//  0x08, 0x0F, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'S', 0x18, 0x3C, 0x64, 0x44, 0xC4, 0x9C, 0x18, 0x00,  // -S-
//  0x06, 0x0E, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,
//
    'T', 0x00, 0x1C, 0x0C, 0xFC, 0xFC, 0x0C, 0x1C, 0x00,  // -T-
    0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00,

//  'U', 0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00,  // -U-
//  0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,
//
//  'V', 0xFC, 0xFC, 0x00, 0x00, 0x00, 0xFC, 0xFC, 0x00,  // -V-
//  0x01, 0x03, 0x06, 0x0C, 0x06, 0x03, 0x01, 0x00,
//
//  'W', 0xFC, 0xFC, 0x00, 0x80, 0x00, 0xFC, 0xFC, 0x00,  // -W-
//  0x03, 0x0F, 0x0E, 0x03, 0x0E, 0x0F, 0x03, 0x00,
//
    'X', 0x0C, 0x3C, 0xF0, 0xC0, 0xF0, 0x3C, 0x0C, 0x00,  // -X-
    0x0C, 0x0F, 0x03, 0x00, 0x03, 0x0F, 0x0C, 0x00,

//  'Y', 0x00, 0x3C, 0x7C, 0xC0, 0xC0, 0x7C, 0x3C, 0x00,  // -Y-
//  0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00,
//
//  'Z', 0x1C, 0x0C, 0x84, 0xC4, 0x64, 0x3C, 0x1C, 0x00,  // -Z-
//  0x0E, 0x0F, 0x09, 0x08, 0x08, 0x0C, 0x0E, 0x00,
//
//  '[', 0x00, 0x00, 0xFC, 0xFC, 0x04, 0x04, 0x00, 0x00,  // -[-
//  0x00, 0x00, 0x0F, 0x0F, 0x08, 0x08, 0x00, 0x00,
//
//  '\\', 0x38, 0x70, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00,  // -\-
//  0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0E, 0x00,
//
//  ']', 0x00, 0x00, 0x04, 0x04, 0xFC, 0xFC, 0x00, 0x00,  // -]-
//  0x00, 0x00, 0x08, 0x08, 0x0F, 0x0F, 0x00, 0x00,
//
//  '^', 0x08, 0x0C, 0x06, 0x03, 0x06, 0x0C, 0x08, 0x00,  // -^-
//  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//
//  '_', 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // -_-
//  0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
//
//  '`', 0x00, 0x00, 0x03, 0x07, 0x04, 0x00, 0x00, 0x00,  // -`-
//  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//
    'a', 0x00, 0xA0, 0xA0, 0xA0, 0xE0, 0xC0, 0x00, 0x00,  // -a-
    0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08, 0x00,

    'b', 0x04, 0xFC, 0xFC, 0x20, 0x60, 0xC0, 0x80, 0x00,  // -b-
    0x08, 0x0F, 0x07, 0x08, 0x08, 0x0F, 0x07, 0x00,

    'c', 0xC0, 0xE0, 0x20, 0x20, 0x20, 0x60, 0x40, 0x00,  // -c-
    0x07, 0x0F, 0x08, 0x08, 0x08, 0x0C, 0x04, 0x00,

    'd', 0x80, 0xC0, 0x60, 0x24, 0xFC, 0xFC, 0x00, 0x00,  // -d-
    0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08, 0x00,

    'e', 0xC0, 0xE0, 0xA0, 0xA0, 0xA0, 0xE0, 0xC0, 0x00,  // -e-
    0x07, 0x0F, 0x08, 0x08, 0x08, 0x0C, 0x04, 0x00,

    'f', 0x40, 0xF8, 0xFC, 0x44, 0x0C, 0x18, 0x00, 0x00,  // -f-
    0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00,

//  'g', 0xC0, 0xE0, 0x20, 0x20, 0xC0, 0xE0, 0x20, 0x00,  // -g-
//  0x27, 0x6F, 0x48, 0x48, 0x7F, 0x3F, 0x00, 0x00,
//
//  'h', 0x04, 0xFC, 0xFC, 0x40, 0x20, 0xE0, 0xC0, 0x00,  // -h-
//  0x08, 0x0F, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'i', 0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00, 0x00, 0x00,  // -i-
//  0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00,
//
//  'j', 0x00, 0x00, 0x00, 0x00, 0x20, 0xEC, 0xEC, 0x00,  // -j-
//  0x00, 0x30, 0x70, 0x40, 0x40, 0x7F, 0x3F, 0x00,
//
//  'k', 0x04, 0xFC, 0xFC, 0x80, 0xC0, 0x60, 0x20, 0x00,  // -k-
//  0x08, 0x0F, 0x0F, 0x01, 0x03, 0x0E, 0x0C, 0x00,
//
//  'l', 0x00, 0x00, 0x04, 0xFC, 0xFC, 0x00, 0x00, 0x00,  // -l-
//  0x00, 0x00, 0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00,
//
//  'm', 0xE0, 0xE0, 0x60, 0xC0, 0x60, 0xE0, 0xC0, 0x00,  // -m-
//  0x0F, 0x0F, 0x00, 0x0F, 0x00, 0x0F, 0x0F, 0x00,
//
//  'n', 0x20, 0xE0, 0xC0, 0x20, 0x20, 0xE0, 0xC0, 0x00,  // -n-
//  0x00, 0x0F, 0x0F, 0x00, 0x00, 0x0F, 0x0F, 0x00,
//
//  'o', 0xC0, 0xE0, 0x20, 0x20, 0x20, 0xE0, 0xC0, 0x00,  // -o-
//  0x07, 0x0F, 0x08, 0x08, 0x08, 0x0F, 0x07, 0x00,
//
//  'p', 0x20, 0xE0, 0xC0, 0x20, 0x20, 0xE0, 0xC0, 0x00,  // -p-
//  0x40, 0x7F, 0x7F, 0x48, 0x08, 0x0F, 0x07, 0x00,
//
//  'q', 0xC0, 0xE0, 0x20, 0x20, 0xC0, 0xE0, 0x20, 0x00,  // -q-
//  0x07, 0x0F, 0x08, 0x48, 0x7F, 0x7F, 0x40, 0x00,
//
//  'r', 0x20, 0xE0, 0xC0, 0x60, 0x20, 0x60, 0xC0, 0x00,  // -r-
//  0x08, 0x0F, 0x0F, 0x08, 0x00, 0x00, 0x00, 0x00,
//
//  's', 0x40, 0xE0, 0xA0, 0x20, 0x20, 0x60, 0x40, 0x00,  // -s-
//  0x04, 0x0C, 0x09, 0x09, 0x0B, 0x0E, 0x04, 0x00,
//
//  't', 0x20, 0x20, 0xF8, 0xFC, 0x20, 0x20, 0x00, 0x00,  // -t-
//  0x00, 0x00, 0x07, 0x0F, 0x08, 0x0C, 0x04, 0x00,
//
//  'u', 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00,  // -u-
//  0x07, 0x0F, 0x08, 0x08, 0x07, 0x0F, 0x08, 0x00,
//
    'v', 0x00, 0xE0, 0xE0, 0x00, 0x00, 0xE0, 0xE0, 0x00,  // -v-
    0x00, 0x03, 0x07, 0x0C, 0x0C, 0x07, 0x03, 0x00,

//  'w', 0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00,  // -w-
//  0x07, 0x0F, 0x0C, 0x07, 0x0C, 0x0F, 0x07, 0x00,
//
//  'x', 0x20, 0x60, 0xC0, 0x80, 0xC0, 0x60, 0x20, 0x00,  // -x-
//  0x08, 0x0C, 0x07, 0x03, 0x07, 0x0C, 0x08, 0x00,
//
//  'y', 0xE0, 0xE0, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00,  // -y-
//  0x47, 0x4F, 0x48, 0x48, 0x68, 0x3F, 0x1F, 0x00,
//
//  'z', 0x60, 0x60, 0x20, 0xA0, 0xE0, 0x60, 0x20, 0x00,  // -z-
//  0x0C, 0x0E, 0x0B, 0x09, 0x08, 0x0C, 0x0C, 0x00,
//
//  '{', 0x00, 0x40, 0x40, 0xF8, 0xBC, 0x04, 0x04, 0x00,  // -{-
//  0x00, 0x00, 0x00, 0x07, 0x0F, 0x08, 0x08, 0x00,
//
//  '|', 0x00, 0x00, 0x00, 0xBC, 0xBC, 0x00, 0x00, 0x00,  // -|-
//  0x00, 0x00, 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x00,
//
//  '}', 0x00, 0x04, 0x04, 0xBC, 0xF8, 0x40, 0x40, 0x00,  // -}-
//  0x00, 0x08, 0x08, 0x0F, 0x07, 0x00, 0x00, 0x00,
//
//  '~', 0x08, 0x0C, 0x04, 0x0C, 0x08, 0x0C, 0x04, 0x00,  // -~-
//  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    '', 0x80, 0xC0, 0x60, 0x30, 0x60, 0xC0, 0x80, 0x00,  // --
    0x07, 0x07, 0x04, 0x04, 0x04, 0x07, 0x07, 0x00,

};
typedef enum {
    utf8_1B = 0x80,
    utf8_2B = 0xE0,
    utf8_3B = 0xF0,
    utf8_4B = 0xF8
}utf8_mask;
/*! \brief 将utf8的字符编码转化成unicode字符编码,目前只支持16位的unicode
 * \param unicode_buf 保存转换后的unicode字符编码
 * \param  utf8_string 需要转换的utf8字符编码
 * \retrun
 */
void utf82unicode(const uint8 *utf8_string, uint16 *unicode_buf) {
    uint8 i = 0;
    for (; utf8_string[i] != 0;) {
        if ((utf8_string[i] & utf8_1B) == 0) {
            *unicode_buf = utf8_string[i];
            unicode_buf++;
            i++;
        } else if ((utf8_string[i] & utf8_2B) == 0xC0) {
            *unicode_buf = ((utf8_string[i] & 0x1F) << 6) + (utf8_string[i + 1] & 0x3F);
            unicode_buf++;
            i += 2;
        } else if ((utf8_string[i] & utf8_3B) == 0xE0) {
            *unicode_buf = ((utf8_string[i] & 0x0F) << 12) + ((utf8_string[i + 1] & 0x3F) << 6) + (utf8_string[i + 2] & 0x3F);
            unicode_buf++;
            i += 3;
        } else {
        }

//      else if ((*utf8_string | utf8_4B) == 0xF0)
//      {
//          *unicode_buf = ((*utf8_string & 0x07) << 18) + ((*(utf8_string + 1) & 0x3F) << 6) + ((*(utf8_string + 2) & 0x3F)<<6)+ (*(utf8_string + 3) & 0x3F);
//      }
    }
    *unicode_buf = 0;
}

